package com.aispeech.asr.comm.data.form.sentence;

import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

@Data
@NoArgsConstructor
@RequiredArgsConstructor
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
public class Audio {
    @NotNull
    @NonNull
    String audioType;      // 音频类型，必填。 支持：pcm, wav, ogg_speex, ogg_opus, mp3, opus

    @Max(16000)
    @Min(8000)
    int sampleRate;            // 音频采样率

    @Max(8)
    @Min(1)
    int channel = 1;           // 音频通道数，必填。

    @Max(2)
    @Min(2)
    int sampleBytes = 2;       // 音频采样精度，必填。单位：字节数
}
